package com.example.onlinemusic.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.onlinemusic.common.R;
import com.example.onlinemusic.model.domain.Song;
import com.example.onlinemusic.model.request.SongRequest;
import org.springframework.web.multipart.MultipartFile;

public interface SongService extends IService<Song> {

    /**
     * 根据歌手ID查询歌曲列表
     *
     * @param singerId
     * @return
     */
    public R selectSongsBySingerId(int singerId);

    /**
     * 更新歌曲
     *
     * @param songRequest
     * @return
     */
    public R updateSong(SongRequest songRequest);

    /**
     * 删除歌曲
     *
     * @param id
     * @return
     */
    public R deleteSong(int id);

    /**
     * 添加歌曲
     *
     * @param songRequest
     * @return
     * @Param mpfile 表示文件的二进制流
     */
    public R addSong(SongRequest songRequest, MultipartFile mpfile);

    /**
     * 更新歌曲图片
     *
     * @param mpfile 上传的图片文件
     * @param id     歌曲主键id
     * @return
     */
    public R updateSongPic(MultipartFile mpfile, int id);

    /**
     * 根据歌手名称查询歌曲
     * @param name
     * @return
     */
    public R songOfSingerName(String name);


    public R allSong();


    public R songDetail(int id);


    public R getSongDetail(int id);

    /**
     * 判断歌曲是否支付
     * @param songId
     * @param userId
     * @return true 已购买歌曲
     */
    R isPay(Integer songId, Integer userId);
}
